package edu.ccut.saturn.component;

/**
 * 定义了路径资源信息类型，具体定义了7种类型的路径资源，分别是
 * <li>1. SATURN_DIRECTORY_TYPE_WEB : web type
 * <li>2. SATURN_DIRECTORY_TYPE_COMPONENT : component type
 * <li>3. SATURN_DIRECTORY_TYPE_ACTION : action type
 * <li>4. SATURN_DIRECTORY_TYPE_LOGIC : logic type
 * <li>5. SATURN_DIRECTORY_TYPE_DATA : data type
 * <li>6. SATURN_DIRECTORY_TYPE_SCA : module type
 * <li>7. SATURN_DIRECTORY_TYPE_VALIDATE : validate type
 * <li>8. SATURN_DIRECTORY_TYPE_WORKFLOW : workflow type
 * <p>
 * 接口<code>IDirectoryInfo</code>扩展自类型<code>IResourceInfo</code>：
 * 定义了表示路径类型的常量字符串，定义了维护路径资源信息的操作方法。
 * 
 * @author 谷钰
 * @author 温建
 * 
 * @version 1.0 2008.8.26
 * 
 * @see IResourceInfo
 * 
 */
public interface IDirectoryInfo extends IResourceInfo {

	public static final String SATURN_DIRECTORY_INFO_NAME = ".saturn";

	public static final String SATURN_DIRECTORY_TYPE_WEB = "web";

	public static final String SATURN_DIRECTORY_TYPE_ACTION = "action";

	public static final String SATURN_DIRECTORY_TYPE_LOGIC = "logic";

	public static final String SATURN_DIRECTORY_TYPE_DATA = "data";

	public static final String SATURN_DIRECTORY_TYPE_COMPONENT = "component";

	public static final String SATURN_DIRECTORY_TYPE_SCA = "sca";

	public static final String SATURN_DIRECTORY_TYPE_VALIDATE = "validate";

	public static final String SATURN_DIRECTORY_TYPE_DATADICT = "datadict";

	public static final String SATURN_DIRECTORY_TYPE_MODULE = "module";

	public static final String SATURN_DIRECTORY_TYPE_WORKFLOW = "workflow";


	/**
	 * 获得路径的版本信息
	 * 
	 * @return
	 */
	
	public String getVersion();

	/**
	 * 设置路径的版本信息
	 * 
	 * @param version
	 */
	
	public void setVersion(String version);

	/**
	 * 获得路径的描述信息
	 * 
	 * @return
	 */
	public String getDescription();

	/**
	 * 设置路径的描述信息
	 * 
	 * @param description
	 */
	public void setDescription(String description);

	/**
	 * 获得路径的类型
	 * 
	 * @return
	 */
	public String getType();

	/**
	 * 获得路径的创建时间
	 * 
	 * @return
	 */
	public String getTime();

	/**
	 * 设置路径的创建时间
	 * 
	 * @param time
	 */
	public void setTime(String time);

	/**
	 * 获得路径资源在bundle中的相对路径
	 * 
	 * @return
	 */
	public String getDirectoryPath();

	/**
	 * 设置路径资源在bundle中的相对路径
	 * 
	 * @param path
	 */
	public void setDirectoryPath(String path);

	// public void load(Bundle bundle, IBundleInfo bundleInfo) throws
	// SaturnComponentException;
	//
	// public void unload(Bundle bundle, IBundleInfo bundleInfo) throws
	// SaturnComponentException;
}
